package com.sise.bl.dao;


import com.sise.bl.entity.Item;
import com.sise.bl.entity.Orders;

import java.util.List;
import java.util.Set;

public interface OrdersDao {
    /**
     * 添加订单
     *
     * @param orders
     */
    void insertOrders(Orders orders);

    /**
     * 添加订单的订单项
     *
     * @param item
     */
    void insertItem(Item item);

    /**
     * 根据用户 id 查询该用户下的所有订单
     *
     * @param uid 用户表的唯一标识
     * @return
     */
    List<Orders> selectOrdersByUid(Integer uid);

    /**
     * 根据订单 id 查询订单
     *
     * @param oid 订单表的唯一标识
     * @return
     */
    Orders selectOrdersByOid(String oid);

    /**
     * 订单状态 0 未付款，1已经付款未发货 2发货待收货 3 收货待评价 4订单完成 5 退货状态
     * 修改订单状态为   2
     *
     * @param orders
     */
    void updateStateByOid(Orders orders);

    /**
     * @param oid
     * @return
     */
    List<Item> selectItemByOid(String oid);

    /**
     * 查询所有订单
     *
     * @return
     */
    List<Orders> selectAll();

    /**
     * 删除 顶顶那
     * @param orders
     */
    void deleteOrders(Orders orders);

    /**
     * 根据用户id 删除该用户下的所有订单
     * @param uid
     */
    void deleteOrdersByUid(Integer uid);

    /**
     * 根据订单 id 删除该订单下的所有订单项
     * @param oid
     */
    void deleteItemByOid(String oid);

    /**
     * 根据 商品id 删除订单项
     * @param pid
     */
    void deleteItemByPid(Integer pid);


}
